package com.example.desionMode.cart;

import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author houyangfan
 * @version 1.0
 * @date 2022/8/4 11:44
 *
 * 普通用户需要收取运费，运费是商品价格的 10%，无商品折扣；
 * VIP 用户同样需要收取商品价格 10% 的快递费，但购买两件以上相同商品时，第三件开始享受一定折扣；
 * 内部用户可以免运费，无商品折扣。
 *
 * 对于该需求，平时最简单的就是if -else 判断 然后分别处理三种类型用户的逻辑
 * 该示例使用 工厂模式+模板方法模式 来 消除if-else 并实现可扩展(即 比如以后有其他类型的用户不用修改现有逻辑)
 */
@Data
public class Cart {

    private List<Item> items;

    //总优惠
    private BigDecimal totalDiscount;

    //商品总价
    private BigDecimal totalItemPrice;

    //总运费
    private BigDecimal totalDeliveryPrice;

    //应付总价
    private BigDecimal payPrice;
}
